System.Nullable<T> – struktura

Tento článek obsahuje doplňující poznámky k referenční dokumentaci pro toto rozhraní API.

Třída Nullable představuje typ hodnoty, který lze přiřadit null.

Typ je řečeno, že má hodnotu null, pokud může být přiřazena hodnota nebo lze přiřadit null, což znamená, že typ nemá žádnou hodnotu. Ve výchozím nastavení jsou všechny odkazové typy, například String, nullable, ale všechny typy hodnot, například Int32, nejsou.

V jazyce C# a Visual Basic označíte typ hodnoty jako hodnotu null pomocí zápisu ? za typem hodnoty. Například int? v jazyce C# nebo Integer? v jazyce Visual Basic deklaruje celočíselnou hodnotu typu, který lze přiřadit null.

Struktura Nullable<T> podporuje použití pouze typu hodnoty jako typu s možnou hodnotou null, protože odkazové typy mají hodnotu nullable podle návrhu.

Třída Nullable poskytuje doplňkovou podporu struktury Nullable<T> . Třída Nullable podporuje získání základního typu typu s možnou hodnotou null a operace porovnání a rovnosti u dvojic typů s možnou hodnotou null, jejichž základní typ hodnoty nepodporuje obecné operace porovnání a rovnosti.

Základní vlastnosti

Dva základní členy Nullable<T> struktury jsou vlastnosti HasValue a Value vlastnosti. HasValue Pokud je truevlastnost objektu Nullable<T> , je hodnota objektu přístupná s Value vlastností. HasValue Pokud je falsevlastnost , hodnota objektu není definována a pokus o přístup Value k vlastnosti vyvolá výjimku InvalidOperationException.

Boxing and unboxing

Pokud je zadán typ s možnou hodnotou null, modul CLR (Common Language Runtime) automaticky zadává podkladovou hodnotu objektu Nullable<T> , nikoli Nullable<T> samotný objekt. To znamená, že pokud HasValue je truevlastnost , obsah Value vlastnosti je boxed. Pokud je podkladová hodnota typu s možnou hodnotou null rozbalována, modul CLR (Common Language Runtime) vytvoří novou Nullable<T> strukturu inicializovanou na podkladovou hodnotu.

HasValue Pokud je falsevlastnost typu nullable , výsledek operace boxing je null. V důsledku toho, pokud boxed nullable typ je předán metodě, která očekává argument objektu, tato metoda musí být připravena zpracovat případ, kde argument je null. Pokud null je unboxed do typu nullable, common language runtime vytvoří novou Nullable<T> strukturu a inicializuje jeho HasValue vlastnost na false.

Komponenty prostředí Windows Runtime

Typ můžete zahrnout Nullable<T> jako člen struktury exportované do knihovny WinMD.